package com.example.mybatis_.mapper;

import com.example.mybatis_.pojo.Emp;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper // Spring 会自动扫描这个接口，并创建一个实现类，并注入到 Spring 容器中
public interface EmpMapper {
    // 可以直接使用 #{对象属性名} 获取参数值
    void insertEmp(Emp emp);

    // 更新员工信息
    void updateEmp(@Param("e") Emp emp);

    void deleteEmpByID(@Param("id") Integer id);

    Emp selectEmpById(Integer id);

    // 实际业务需要分页,不然容易OOM
    List<Emp> selectAllEmps();

    List<Emp> selectComplexEmp();


    @MapKey("id")
    Map<Integer, Emp> getAllMap();
}